The present invention relates to establishing and controlling connections for data transfer.
An increasing amount of information is being made available for access using computers. In addition to the amount of data available, the format of information is moving from purely text-based to multimedia-based, requiring still more data to express the information. Much of this information can be accessed through the internet. Other information is available through private networks or by direct connection to a data supplier.
One difficulty with networks such as the internet is the unpredictability of data transfer rates. Data throughput is often limited to a greater extent by the network than by the requester and the supplier. Since paths through the internet are connectionless, the data transfer performance is not known with any certainty, may fluctuate wildly, and cannot be guaranteed to meet any specified performance level.
Another difficulty is the serial nature of handling multiple tasks. A user must wait for the completion of data transfer for a current task before initiating another task. For example, consider a user attempting to download information from multiple internet sites. The second connection, request for data, and data transfer cannot be initiated or completed until the data from the first request has been received. Likewise, third and subsequent accesses must be sequential.
A further difficulty is the generally low rate of data transfer, forcing a user of a requesting computer system to wait several seconds to several minutes for an amount of data sufficient to permit the user to begin interpreting the data. Typically, a modem is used to transfer data over a telecommunication network. A modem for a conventional analog telephone line limits data rates to at most 56 Kb/s under current technology. Alternate technologies, such as ISDN, ADSL, and cable modems provide increased data rates but are expensive and are not available in many locations.
To increase data rates in locations with more than one analog phone line, the data may be disassembled into multiple streams and sent concurrently over several modems. In this case, similar resources are used. However, there may also be a mixture of resources such as analog phone lines, ISDN, ADSL, cable modems, and the like available during pauses in their primary application work stream. As in the multiple analog telephone line case, these temporarily available dissimilar resources have the potential of being shared to increase communications performance. In all cases, the receiver must have the same number of modems available and must be able to reassemble the data into its original sequence. These techniques are known as inverse multiplexing and modem striping. One problem with such techniques is that both the requester and the responder must have compatible equipment. Another problem is that dynamic allocation of communication resources based on factors such as changing resource supply and demand is not supported. Yet another problem that automatic establishment of control and data paths is not supported.
What is needed is the ability to demand temporary use of data communication resources to ensure specific, predictable data transfer performance.
It is an object of the present invention to provide a user temporary use of resources on demand.
Another object of the present invention is to provide the user specific levels of data transfer performance.
Still another object of the present invention is to provide to the user predictable data transfer bandwidth on demand.
Yet another object of the present invention is to provide the ability to use multiple connections to provide specific, predictable data transfer performance, the connections capable of operating in parallel.
A further object of the present invention is to allow a control connection to be maintained throughout the data transfer or to allow the control connection to be dropped once data transfer is negotiated.
A still further object of the present invention is to provide a control connection capable of establishing the performance level of the data link.
Yet a further object of the present invention is to provide dynamic configuration and management of communication resources.
An additional object of the present invention is to allocate communication resources dynamically.
Yet an additional object of the present invention is to accomplish communication operations automatically, without user intervention.
In carrying out the above objects and other objects and features of the present invention, a communication system is presented. The communication system includes a requesting computer system, a responding computer system, and communication paths for establishing connections between the requesting computer system and the responding computer system. The requesting computer system can establish a temporary initial control connection with the responding computer system through a first communication path. A temporary negotiating connection is established with the responding computer system. Data transfer characteristics are negotiated with the responding computer using the temporary negotiating connection. A temporary data connection is established through a set including at least one communication path based on the negotiated data transfer characteristics, the set not including the first communication path.
In one embodiment of the present invention, the communication system includes a second responding computer system. The requesting computer system can break the initial control connection with the first responding computer system once the negotiating control connection is established and can establish a temporary initial control connection with the second responding computer system, thereby permitting access to the second responding computer system in parallel with completion of negotiating data transfer characteristics and establishing the temporary data connection.
In another embodiment of the present invention, the responding computer system does not hold the data requested by the requesting computer system. The communication system includes at least one library system, the data requested by the requesting computer system being held within one of the library systems. In a refinement, each library system determines if the requested data is held within and, if so, sends the data using the established connection. If the requested data is not held within, each library system establishes a connection to a selected library system and inquires if the requested data is held within.
A method is also provided for communication between a requesting computer system and a responding computer system. The method includes establishing an initial control connection between the requesting computer system and the responding computer system through a first communication path, establishing a negotiating control connection between the requesting computer system and the responding computer system through a second set of including at least one communication path, negotiating data transfer characteristics between the requesting computer system and the responding computer system through the negotiating control connection, establishing a temporary data connection between the requesting computer system and the responding computer system using a third set of at least one communication path, the selection of the at least one communication path based on the negotiated data transfer characteristics, and transferring data between the responding computer system and the requesting computer system using the established temporary data connection.
Various negotiating control embodiments are described. The negotiating control connection can be broken after establishing the data connection. The negotiating control connection can be reestablished after data has been transferred.
In another embodiment, security measures to be used in establishing a temporary data connection and in transferring data are determined during negotiating data transfer characteristics.
In yet another embodiment, paths are dynamically allocated during data transfer based upon at least one parameter from a set of parameters comprising number of paths, types of paths, cost of using paths, usage of paths, demand for paths, and user preferences.
A communication system is also described which includes a requesting computer system requesting data to be transferred at a specified level of data transfer performance, a responding computer system, at least one broker system, and a plurality of communication paths between the requesting computer system and the responding computer system, between the responding computer system and each of the at least one broker system, and between one of the at least one broker system and any other of the at least one broker system. The requesting computer system automatically establishes a first control connection with the requestor system through a first path and transmits the specified level of data transfer performance through the first control connection. The responding computer system determines if it is capable of transferring the requested data at the specified level of data transfer performance and, if so to transfer the requested data to the requesting computer. Otherwise a second control connection is established with a selected broker system and the requested data is transferred to one of the broker systems. Each broker system can determine if it is capable of transferring the requested data at the specified level of data transfer performance and, if so, transfer the requested data to the requesting computer system. Otherwise the broker system establishes a broker-to-broker control connection with a selected broker system and transfers the requested data to the selected broker system. The responding computer system and any broker system capable of transferring data to the requesting computer system can establish a temporary initial control connection with the requesting computer system, establish a temporary negotiating connection with the requesting computer system, negotiate data transfer characteristics with the requesting computer system, and establish a temporary data connection with the requesting computer system.
The above objects and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings.